package cn.iocoder.yudao.module.member.assets.service;

import cn.iocoder.yudao.framework.business.basic.service.PageService;
import cn.iocoder.yudao.framework.business.basic.service.SimpleDetailService;
import cn.iocoder.yudao.module.api.member.task.enums.TaskStatusEnum;
import cn.iocoder.yudao.module.member.assets.bo.CryptocurrencyIncreasingTaskCountBO;
import cn.iocoder.yudao.module.member.assets.vo.AppCryptocurrencyIncreasingTakeAdRespVO;
import cn.iocoder.yudao.module.member.assets.vo.AppCryptocurrencyIncreasingTaskQueryDTO;
import cn.iocoder.yudao.module.member.assets.vo.AppCryptocurrencyIncreasingTaskSubmitVO;
import cn.iocoder.yudao.module.member.assets.vo.AppCryptocurrencyIncreasingTaskVO;

import java.util.List;

/**
 * 联盟豆增值任务 Service 接口
 *
 * @author 山野羡民
 */
public interface AppCryptocurrencyIncreasingTaskService extends SimpleDetailService<AppCryptocurrencyIncreasingTaskVO>, PageService<AppCryptocurrencyIncreasingTaskVO, AppCryptocurrencyIncreasingTaskQueryDTO> {

    Long create(Integer inAmount, Double incrementPercent, Integer requireDays, Integer requireTasks, Long userId);

    AppCryptocurrencyIncreasingTaskVO getAvailable(Long userId);

    AppCryptocurrencyIncreasingTakeAdRespVO takeAd(Long userId);

    void submit(AppCryptocurrencyIncreasingTaskSubmitVO param, Long userId);

    List<CryptocurrencyIncreasingTaskCountBO> count(Long userId, TaskStatusEnum status);

    int autoCompleteOrExpire();

    int autoReturn();

}
